#ifndef __GlGraphicComponent_h__
#define __GlGraphicComponent_h__

#include "GlMain.h"

namespace GraphicLibrary
{
	class Position;
	class GlExport GraphicComponent
	{
		public:
			Position getPosition() const;
			float getAngleTo(const Position &newPos) const;
			Position getPositionAt(const float direction, const float distance);
			virtual ~GraphicComponent();
			virtual void move(const Position &newPos) = 0;
			virtual float getX() const = 0;
			virtual float getY() const = 0;
			virtual void setDirection(float rotation) = 0;
			virtual void setVisibility(const bool visible) = 0;
			virtual bool isVisible() const = 0;
			virtual void setLayer(const float layer) = 0;
			virtual float getLayer() const = 0;

			static float	msSaturation;
	};
}

#endif // __GlGraphicComponent_h__
